/**
 * 地址管理相关API
 */

const request = require('../utils/request');

/**
 * 新增地址
 * @param {Object} addressData - 地址信息对象
 * @returns {Promise} - 返回请求Promise
 */
const addAddress = (addressData) => {
  return request.post('/user/addressBook', addressData);
};

/**
 * 根据id修改地址
 * @param {Object} addressData - 地址信息对象(必须包含id)
 * @returns {Promise} - 返回请求Promise
 */
const updateAddress = (addressData) => {
  return request.put('/user/addressBook', addressData);
};

/**
 * 根据id删除地址
 * @param {Number|String} id - 地址id
 * @returns {Promise} - 返回请求Promise
 */
const deleteAddress = (id) => {
  return request.delete('/user/addressBook', { id });
};

/**
 * 查询当前登录用户的所有地址信息
 * @returns {Promise} - 返回请求Promise
 */
const getAddressList = () => {
  return request.get('/user/addressBook/list');
};

/**
 * 查询默认地址
 * @returns {Promise} - 返回请求Promise
 */
const getDefaultAddress = () => {
  return request.get('/user/addressBook/default');
};

/**
 * 设置默认地址
 * @param {Number|String} id - 地址id
 * @returns {Promise} - 返回请求Promise
 */
const setDefaultAddress = (id) => {
  return request.put('/user/addressBook/default', { id });
};

/**
 * 根据id查询地址
 * @param {Number|String} id - 地址id
 * @returns {Promise} - 返回请求Promise
 */
const getAddressById = (id) => {
  return request.get(`/user/addressBook/${id}`);
};

module.exports = {
  addAddress,
  updateAddress,
  deleteAddress,
  getAddressList,
  getDefaultAddress,
  setDefaultAddress,
  getAddressById
};